Non-deterministic Constructs in OCL - What Does any() Mean
نویسنده
چکیده
The Object Constraint Language (OCL) offers so-called nondeterministic constructs which are often only poorly understood even by OCL experts. They are widely ignored in the OCL literature, their semantics given in the official language description of OCL is ill-defined, and none of today’s OCL tools support them in a consistent way. The source of the poor understanding and ill-defined semantics is, as identified in this paper, OCL’s attempt to adopt the concept of nondeterminism from other specification languages with fundamentally different semantical foundations. While this insight helps to improve the understanding of non-deterministic constructs it also shows that there are some formidable obstacles for their integration into OCL. However, in some cases, non-deterministic constructs can be read as abbreviations for more complex deterministic constructs and can help to formulate a specification in a more understandable way. Thus, we suggest to integrate non-deterministic constructs in other specification languages such as Z, JML, Eiffel whose semantical foundations are similar to those
منابع مشابه
When Grammars do not Suffice: Data and Content Integrity Constraints Verification in XML through a Conceptual Model
Complex applications can benefit greatly from using conceptual models and Model Driven Architecture during development, deployment and runtime. XML applications are not different. In this paper, we examine the possibility of using Object Constraint Language (OCL) for expressing constraints over a conceptual model for XML data. We go through the different classes of OCL expression and show how e...
متن کاملStatistical Constraints and Verification
Statistical constraints have been introduced to UML models to describe their most salient aspects, allowing a natural expression of what is usually the case while tolerating exceptions. They are defined using well-known statistical constructs in terms of OCL collections. They offer more freedom and flexibility than the standard logical quantifiers (‘exists’ and ‘forAll’). This is achieved in a ...
متن کاملD2C: Deterministic, Deadlock-free Concurrency
The advent of multicore processors has made concurrent programming languages mandatory. However, most concurrent programming models come with two major pitfalls: non-determinism and deadlocks. By determinism, we mean the output behavior of the program is independent of the scheduling choices (e.g., the operating system) and depends only on the input behavior. A few concurrent programming models...
متن کاملModular Embedding of the Object Constraint Language into a Programming Language
The Object Constraint Language (OCL) is a well-accepted ingredient in model-driven engineering and accompanying modeling languages like UML (Unified Modeling Language) or EMF (Eclipse Modeling Framework) which support object-oriented software development. Among various possibilities, OCL offers the formulation of state invariants and operation contracts in form of preand postconditions. With OC...
متن کاملTool Support for OCL and Related Formalisms - Needs and Trends
The recent trend in software engineering to model-centered methodologies is an excellent opportunity for OCL to become a widely used specification language. If the focus of the development activities is shifted from implementation code to more abstract models then software developers need a formalism to provide a complete, unambiguous and consistent model at a very detailed level. OCL is curren...
متن کامل